home *** CD-ROM | disk | FTP | other *** search
/ Aminet 30 / Aminet 30 (1999)(Schatztruhe)[!][Apr 1999].iso / Aminet / dev / lang / SmallEiffel.lha / SmallEiffel / bin_c / compile_to_jvm16.c < prev    next >
C/C++ Source or Header  |  1998-12-22  |  43KB  |  1,982 lines

  1. /*
  2. -- ANSI C code generated by :
  3. -- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.79)      --
  4. -- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
  5. -- Dominique COLNET and Suzanne COLLIN -    colnet@loria.fr     --
  6. --                 http://www.loria.fr/SmallEiffel              --
  7. */
  8. #include "compile_to_jvm.h"
  9. /*No:NATIVE_JVM_INVOKESTATIC.jvm_define_function*/
  10. /*No:NATIVE_JVM_INVOKESTATIC.jvm_add_method_for_function*/
  11. T0*oBC304tmp_class=NULL;
  12.  
  13.  
  14. T2 r303idx_methodref(T0* a1){
  15. T2 R=0;
  16. T0* _cp=NULL;
  17. T0* _alias_string=NULL;
  18. T2 _i=0;
  19. _cp=oBC12constant_pool;
  20. _alias_string=/*X294alias_string*/((T0*)(((T296*)a1))->_alias_string/*44*/);
  21. /*[IF*/
  22. if((_alias_string)==((void*)(NULL))){
  23. r21add_position(X294start_position(a1));
  24. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms304_248880);
  25. r21fatal_error((T21*)(oBC12eh),b1);
  26. }/*]*/
  27. }
  28. /*FI]*/
  29. _i=1;
  30. /*[IRF3.3clear*/((((T7*)((T7*)(oBC304tmp_class))))->_count)=(0);
  31. /*]*/
  32. while (!((/*(IRF4.6item*/((((T7*)_alias_string))->_storage/*0*/)[(_i)-(1)]/*)*/)==('\56'))) {
  33. r7extend((T7*)(oBC304tmp_class),/*(IRF4.6item*/((((T7*)_alias_string))->_storage/*0*/)[(_i)-(1)]/*)*/);
  34. _i=(_i)+(1);
  35. }
  36. _i=(_i)+(1);
  37. /*[IRF3.3clear*/((((T7*)((T7*)(oBC304tmp_name))))->_count)=(0);
  38. /*]*/
  39. while (!((/*(IRF4.6item*/((((T7*)_alias_string))->_storage/*0*/)[(_i)-(1)]/*)*/)==('\40'))) {
  40. r7extend((T7*)(oBC304tmp_name),/*(IRF4.6item*/((((T7*)_alias_string))->_storage/*0*/)[(_i)-(1)]/*)*/);
  41. _i=(_i)+(1);
  42. }
  43. _i=(_i)+(1);
  44. /*[IRF3.3clear*/((((T7*)((T7*)(oBC304tmp_descriptor))))->_count)=(0);
  45. /*]*/
  46. while (!((_i)>((((T7*)_alias_string))->_count/*4*/))) {
  47. r7extend((T7*)(oBC304tmp_descriptor),/*(IRF4.6item*/((((T7*)_alias_string))->_storage/*0*/)[(_i)-(1)]/*)*/);
  48. _i=(_i)+(1);
  49. }
  50. R=r29idx_methodref3(((T29*)_cp),oBC304tmp_class,oBC304tmp_name,oBC304tmp_descriptor);
  51. return R;
  52. }
  53. /*No:NATIVE_JVM_INVOKESTATIC.use_current*/
  54.  
  55.  
  56. void r303jvm_mapping_function(T0* a1,T0* a2,T0* a3){
  57. T0* _ca=NULL;
  58. T2 _idx=0;
  59. T2 _space=0;
  60. _ca=oBC12code_attribute;
  61. r24drop_target((T24*)(oBC12jvm));
  62. _space=r24push_arguments((T24*)(oBC12jvm));
  63. _idx=r303idx_methodref((((T386*)a1))->_base_feature/*36*/);
  64. _space=(X52jvm_stack_space((((T386*)a1))->_result_type/*44*/))-(_space);
  65. r28opcode_invokestatic(((T28*)_ca),_idx,_space);
  66. }
  67. /*No:NATIVE_JVM_INVOKESTATIC.jvm_add_method_for_procedure*/
  68. T0*oBC304tmp_descriptor=NULL;
  69. /*No:NATIVE_JVM_INVOKESTATIC.jvm_mapping_procedure*/
  70. T0*oBC304tmp_name=NULL;
  71. /*No:NATIVE_JVM_INVOKESTATIC.jvm_define_procedure*/
  72. /*No:NATIVE_JVM_INVOKESTATIC.fatal_error*/
  73.  
  74.  
  75. void r72loading_path_add(T72* C,T0* a1,T0* a2,T2 a3){
  76. T0* _line=NULL;
  77. T0* _file=NULL;
  78. /*[IF*/
  79. if(((a3)>(5))||((r73count(((T73*)a1)))>(1024))){
  80. r31w_put_string(((T0*)ms72_83580));
  81. {T7*n=malloc(sizeof(*n));
  82. *n=M7;
  83. r7make(n,1024);
  84. _line=(T0*)n;
  85. }
  86. r72append_lp_in(C,_line,a1);
  87. r31w_put_string(_line);
  88. exit(1);
  89. }
  90. /*FI]*/
  91. {T61*n=malloc(sizeof(*n));
  92. *n=M61;
  93. /*[IRF3.1make*//*]*/
  94. _file=(T0*)n;
  95. }
  96. r31sfr_connect((T31*)(oBC12echo),_file,a2);
  97. /*[IF*/
  98. if(/*(IRF4.7is_connected*/((((T61*)_file))->_path/*4*/)!=(NULL)/*)*/){
  99. r31put_string((T31*)(oBC12echo),((T0*)ms72_25809));
  100. r31put_string((T31*)(oBC12echo),a2);
  101. r31put_string((T31*)(oBC12echo),((T0*)ms72_10070));
  102. while (!(r61end_of_input(((T61*)_file)))) {
  103. r61read_line(((T61*)_file));
  104. _line=r7twin((T7*)(oBC62last_string));
  105. /*[IF*/
  106. if(r7has_suffix(((T7*)_line),((T0*)ms72_18194))){
  107. r72loading_path_add(C,a1,_line,(a3)+(1));
  108. }
  109.  else if(!(/*(IRF4.7empty*/((((T7*)_line))->_count/*4*/)==(0)/*)*/)){
  110. r73add_last(((T73*)a1),_line);
  111. }
  112. /*FI]*/
  113. }
  114. r61disconnect(((T61*)_file));
  115. }
  116. /*FI]*/
  117. }
  118. /*No:SYSTEM_TOOLS.system_name*/
  119.  
  120.  
  121. void r72parent_directory(T72* C,T0* a1){
  122. /*[IF*/
  123. if(r72slash_separator(C)){
  124. r7remove_last(((T7*)a1),1);
  125. while (!((r7last(((T7*)a1)))==('\57'))) {
  126. r7remove_last(((T7*)a1),1);
  127. }
  128. }
  129.  else if(r72backslash_separator(C)){
  130. r7remove_last(((T7*)a1),1);
  131. while (!((r7last(((T7*)a1)))==('\134'))) {
  132. r7remove_last(((T7*)a1),1);
  133. }
  134. }
  135.  else if(r72colon_separator(C)){
  136. r7remove_last(((T7*)a1),1);
  137. while (!((r7last(((T7*)a1)))==('\72'))) {
  138. r7remove_last(((T7*)a1),1);
  139. }
  140. }
  141.  else if((((T0*)ms72_756))==((void*)((C)->_system_name/*0*/))){
  142. r7remove_last(((T7*)a1),1);
  143. while (!((r7last(((T7*)a1)))==('\56'))) {
  144. r7remove_last(((T7*)a1),1);
  145. }
  146. r7remove_last(((T7*)a1),1);
  147. r7extend(((T7*)a1),'\135');
  148. }
  149. /*FI]*/
  150. }
  151. /*No:SYSTEM_TOOLS.windows_system*/
  152. /*No:SYSTEM_TOOLS.help_suffix*/
  153. /*No:SYSTEM_TOOLS.fz_03*/
  154. /*No:SYSTEM_TOOLS.vms_system*/
  155. /*No:SYSTEM_TOOLS.class_suffix*/
  156. /*No:SYSTEM_TOOLS.fz_se*/
  157. /*No:SYSTEM_TOOLS.beos_system*/
  158.  
  159.  
  160. T0* r72get_environment_variable(T72* C,T0* a1){
  161. T0* R=NULL;
  162. T8 _p=0;
  163. _p=r7to_external(((T7*)a1));
  164. R=(NULL==(_p=getenv((char*)_p)))?NULL:((T0*)e2s((char*)_p));
  165. return R;
  166. }
  167. /*No:SYSTEM_TOOLS.fz_sys*/
  168. /*No:SYSTEM_TOOLS.fz_system_se*/
  169. /*No:SYSTEM_TOOLS.fz_bin*/
  170. /*No:SYSTEM_TOOLS.fz_loadpath_se*/
  171. /*No:SYSTEM_TOOLS.dos_system*/
  172. /*No:SYSTEM_TOOLS.sys_directory*/
  173. /*No:SYSTEM_TOOLS.fz_b0*/
  174. T0*oBC72system_list=NULL;
  175.  
  176.  
  177. void r72read_loading_path_in(T72* C,T0* a1){
  178. r72loading_path_add(C,a1,((T0*)ms72_18194),1);
  179. r7copy((T7*)(((T0*)ms12_583550)),(C)->_sys_directory/*4*/);
  180. r7append((T7*)(((T0*)ms12_583550)),((T0*)ms72_8613));
  181. r7append((T7*)(((T0*)ms12_583550)),(C)->_system_name/*0*/);
  182. r72loading_path_add(C,a1,((T0*)ms12_583550),1);
  183. }
  184.  
  185.  
  186. void r72bad_use_exit(T72* C,T0* a1){
  187. r31w_put_string(((T0*)ms72_46940));
  188. r31w_put_string(a1);
  189. r31w_put_string(((T0*)ms72_303));
  190. r7copy((T7*)(((T0*)ms12_583550)),(C)->_sys_directory/*4*/);
  191. r72parent_directory(C,((T0*)ms12_583550));
  192. r72add_directory(C,((T0*)ms12_583550),((T0*)ms72_966));
  193. r7append((T7*)(((T0*)ms12_583550)),a1);
  194. r7append((T7*)(((T0*)ms12_583550)),((T0*)ms12_1632));
  195. r31w_put_string(((T0*)ms72_39440));
  196. r31w_put_string(((T0*)ms12_583550));
  197. r31w_put_character('\n');
  198. exit(1);
  199. }
  200. /*No:SYSTEM_TOOLS.amiga_system*/
  201.  
  202.  
  203. void r72append_lp_in(T72* C,T0* a1,T0* a2){
  204. T0* _sed=NULL;
  205. T2 _i=0;
  206. r7append(((T7*)a1),((T0*)ms72_12180));
  207. _i=(((T73*)a2))->_lower/*12*/;
  208. while (!((_i)>((((T73*)a2))->_upper/*8*/))) {
  209. r7extend(((T7*)a1),'\40');
  210. r7extend(((T7*)a1),'\42');
  211. r7append(((T7*)a1),r73item(((T73*)a2),_i));
  212. r7extend(((T7*)a1),'\42');
  213. r7extend(((T7*)a1),'\n');
  214. _i=(_i)+(1);
  215. }
  216. r7append(((T7*)a1),((T0*)ms72_33825));
  217. _sed=r72get_environment_variable(C,((T0*)ms13_18788));
  218. /*[IF*/
  219. if((_sed)==((void*)(NULL))){
  220. r7append(((T7*)a1),((T0*)ms72_5301));
  221. }
  222. else{
  223. r7append(((T7*)a1),((T0*)ms72_138));
  224. r7append(((T7*)a1),_sed);
  225. r7append(((T7*)a1),((T0*)ms72_288));
  226. }
  227. /*FI]*/
  228. }
  229.  
  230.  
  231. void r72class_file_path(T72* C,T0* a1,T0* a2,T0* a3){
  232. /*[IRF3.3clear*/((((T7*)(((T7*)a1))))->_count)=(0);
  233. /*]*/
  234. /*[IF*/
  235. if((((T0*)ms72_756))==((void*)((C)->_system_name/*0*/))){
  236. /*[IF*/
  237. if((/*(IRF4.5first*//*(IRF4.6item*/((((T7*)a2))->_storage/*0*/)[(1)-(1)]/*)*//*)*/)!=('\133')){
  238. r7extend(((T7*)a1),'\133');
  239. }
  240. /*FI]*/
  241. }
  242. /*FI]*/
  243. r7append(((T7*)a1),a2);
  244. /*[IF*/
  245. if(r72slash_separator(C)){
  246. r7set_last(((T7*)a1),'\57');
  247. }
  248.  else if(r72backslash_separator(C)){
  249. r7set_last(((T7*)a1),'\134');
  250. }
  251.  else if(r72colon_separator(C)){
  252. r7set_last(((T7*)a1),'\72');
  253. }
  254.  else if((((T0*)ms72_756))==((void*)((C)->_system_name/*0*/))){
  255. r7set_last(((T7*)a1),'\135');
  256. }
  257. /*FI]*/
  258. r7append(((T7*)a1),a3);
  259. r7append(((T7*)a1),((T0*)ms12_7020));
  260. }
  261.  
  262.  
  263. void r72add_directory(T72* C,T0* a1,T0* a2){
  264. /*[IF*/
  265. if(r72slash_separator(C)){
  266. r7set_last(((T7*)a1),'\57');
  267. r7append(((T7*)a1),a2);
  268. r7set_last(((T7*)a1),'\57');
  269. }
  270.  else if(r72backslash_separator(C)){
  271. r7set_last(((T7*)a1),'\134');
  272. r7append(((T7*)a1),a2);
  273. r7set_last(((T7*)a1),'\134');
  274. }
  275.  else if(r72colon_separator(C)){
  276. r7set_last(((T7*)a1),'\72');
  277. r7append(((T7*)a1),a2);
  278. r7set_last(((T7*)a1),'\72');
  279. }
  280.  else if((((T0*)ms72_756))==((void*)((C)->_system_name/*0*/))){
  281. r7set_last(((T7*)a1),'\135');
  282. r7remove_last(((T7*)a1),1);
  283. r7set_last(((T7*)a1),'\56');
  284. r7append(((T7*)a1),a2);
  285. r7set_last(((T7*)a1),'\135');
  286. }
  287. /*FI]*/
  288. }
  289.  
  290.  
  291. void r72make(T72* C){
  292. T2 _i=0;
  293. T0* _system_se_path=NULL;
  294. _system_se_path=r72get_environment_variable(C,((T0*)ms13_18788));
  295. /*[IF*/
  296. if((_system_se_path)==((void*)(NULL))){
  297. _system_se_path=r7twin((T7*)(((T0*)ms13_18788)));
  298. r7to_upper(((T7*)_system_se_path));
  299. _system_se_path=r72get_environment_variable(C,_system_se_path);
  300. /*[IF*/
  301. if((_system_se_path)==((void*)(NULL))){
  302. r31put_string((T31*)(oBC12echo),((T0*)ms72_226958));
  303. _system_se_path=((T0*)ms72_132226);
  304. r31put_string((T31*)(oBC12echo),_system_se_path);
  305. r31put_string((T31*)(oBC12echo),((T0*)ms13_166));
  306. }
  307. /*FI]*/
  308. }
  309. /*FI]*/
  310. /*[IF*/
  311. if(r7has_suffix(((T7*)_system_se_path),((T0*)ms13_13428))){
  312. r31sfr_connect((T31*)(oBC12echo),oBC12tmp_file_read,_system_se_path);
  313. }
  314. else{
  315. r31put_string((T31*)(oBC12echo),((T0*)ms72_852461));
  316. /*[IF*/
  317. if(r7has(((T7*)_system_se_path),'\57')){
  318. r31put_string((T31*)(oBC12echo),((T0*)ms72_26690));
  319. r7copy((T7*)(((T0*)ms12_583550)),_system_se_path);
  320. r7set_last((T7*)(((T0*)ms12_583550)),'\57');
  321. r7append((T7*)(((T0*)ms12_583550)),((T0*)ms13_1071));
  322. r7extend((T7*)(((T0*)ms12_583550)),'\57');
  323. r7append((T7*)(((T0*)ms12_583550)),((T0*)ms13_13428));
  324. r31sfr_connect((T31*)(oBC12echo),oBC12tmp_file_read,((T0*)ms12_583550));
  325. }
  326. /*FI]*/
  327. /*[IF*/
  328. if(!(/*(IRF4.7is_connected*/(((T61*)(oBC12tmp_file_read))->_path/*4*/)!=(NULL)/*)*/)){
  329. /*[IF*/
  330. if(r7has(((T7*)_system_se_path),'\134')){
  331. r31put_string((T31*)(oBC12echo),((T0*)ms72_38940));
  332. r7copy((T7*)(((T0*)ms12_583550)),_system_se_path);
  333. r7set_last((T7*)(((T0*)ms12_583550)),'\134');
  334. r7append((T7*)(((T0*)ms12_583550)),((T0*)ms13_1071));
  335. r7extend((T7*)(((T0*)ms12_583550)),'\134');
  336. r7append((T7*)(((T0*)ms12_583550)),((T0*)ms13_13428));
  337. r31sfr_connect((T31*)(oBC12echo),oBC12tmp_file_read,((T0*)ms12_583550));
  338. }
  339. /*FI]*/
  340. }
  341. /*FI]*/
  342. /*[IF*/
  343. if(!(/*(IRF4.7is_connected*/(((T61*)(oBC12tmp_file_read))->_path/*4*/)!=(NULL)/*)*/)){
  344. /*[IF*/
  345. if(r7has(((T7*)_system_se_path),'\72')){
  346. r31put_string((T31*)(oBC12echo),((T0*)ms72_32565));
  347. r7copy((T7*)(((T0*)ms12_583550)),_system_se_path);
  348. r7set_last((T7*)(((T0*)ms12_583550)),'\72');
  349. r7append((T7*)(((T0*)ms12_583550)),((T0*)ms13_1071));
  350. r7extend((T7*)(((T0*)ms12_583550)),'\72');
  351. r7append((T7*)(((T0*)ms12_583550)),((T0*)ms13_13428));
  352. r31sfr_connect((T31*)(oBC12echo),oBC12tmp_file_read,((T0*)ms12_583550));
  353. }
  354. /*FI]*/
  355. }
  356. /*FI]*/
  357. /*[IF*/
  358. if(!(/*(IRF4.7is_connected*/(((T61*)(oBC12tmp_file_read))->_path/*4*/)!=(NULL)/*)*/)){
  359. /*[IF*/
  360. if(r7has(((T7*)_system_se_path),'\135')){
  361. r31put_string((T31*)(oBC12echo),((T0*)ms72_20300));
  362. r7copy((T7*)(((T0*)ms12_583550)),_system_se_path);
  363. r7set_last((T7*)(((T0*)ms12_583550)),'\135');
  364. r7remove_last((T7*)(((T0*)ms12_583550)),1);
  365. r7extend((T7*)(((T0*)ms12_583550)),'\56');
  366. r7append((T7*)(((T0*)ms12_583550)),((T0*)ms13_1071));
  367. r7extend((T7*)(((T0*)ms12_583550)),'\135');
  368. r7append((T7*)(((T0*)ms12_583550)),((T0*)ms13_13428));
  369. r31sfr_connect((T31*)(oBC12echo),oBC12tmp_file_read,((T0*)ms12_583550));
  370. }
  371. /*FI]*/
  372. }
  373. /*FI]*/
  374. /*[IF*/
  375. if(!(/*(IRF4.7is_connected*/(((T61*)(oBC12tmp_file_read))->_path/*4*/)!=(NULL)/*)*/)){
  376. r31put_string((T31*)(oBC12echo),((T0*)ms72_8302));
  377. r7copy((T7*)(((T0*)ms12_583550)),_system_se_path);
  378. r7append((T7*)(((T0*)ms12_583550)),((T0*)ms13_13428));
  379. r31sfr_connect((T31*)(oBC12echo),oBC12tmp_file_read,((T0*)ms12_583550));
  380. }
  381. /*FI]*/
  382. }
  383. /*FI]*/
  384. /*[IF*/
  385. if(!(/*(IRF4.7is_connected*/(((T61*)(oBC12tmp_file_read))->_path/*4*/)!=(NULL)/*)*/)){
  386. r31w_put_string(((T0*)ms72_720532));
  387. exit(1);
  388. }
  389. /*FI]*/
  390. r61read_line((T61*)(oBC12tmp_file_read));
  391. C->_system_name=oBC62last_string;
  392. _i=r73index_of((T73*)(oBC72system_list),(C)->_system_name/*0*/);
  393. /*[IF*/
  394. if((_i)>(((T73*)(oBC72system_list))->_upper/*8*/)){
  395. r31w_put_string(((T0*)ms72_44196));
  396. r31w_put_string(((T61*)(oBC12tmp_file_read))->_path/*4*/);
  397. r31w_put_string(((T0*)ms72_23364));
  398. _i=1;
  399. while (!((_i)>(((T73*)(oBC72system_list))->_upper/*8*/))) {
  400. r31w_put_string(r73item((T73*)(oBC72system_list),_i));
  401. r31w_put_character('\n');
  402. _i=(_i)+(1);
  403. }
  404. exit(1);
  405. }
  406. else{
  407. C->_system_name=r73item((T73*)(oBC72system_list),_i);
  408. r31put_string((T31*)(oBC12echo),((T0*)ms72_10175));
  409. r31put_string((T31*)(oBC12echo),(C)->_system_name/*0*/);
  410. r31put_string((T31*)(oBC12echo),((T0*)ms13_288));
  411. }
  412. /*FI]*/
  413. C->_sys_directory=r7twin((T7*)(((T61*)(oBC12tmp_file_read))->_path/*4*/));
  414. /*[IRF3.6remove_suffix*/{T7* C1=(T7*)((C)->_sys_directory/*4*/);
  415. T0* b1=((T0*)ms13_13428);
  416. r7remove_last(C1,(((T7*)b1))->_count/*4*/);
  417. }/*]*/
  418. r61disconnect((T61*)(oBC12tmp_file_read));
  419. C->_bin_directory=r7twin((T7*)((C)->_sys_directory/*4*/));
  420. r72parent_directory(C,(C)->_bin_directory/*8*/);
  421. r72add_directory(C,(C)->_bin_directory/*8*/,((T0*)ms13_957));
  422. }
  423. /*No:SYSTEM_TOOLS.os2_system*/
  424.  
  425.  
  426. T6 r72colon_separator(T72* C){
  427. T6 R=0;
  428. /*[IF*/
  429. if((((T0*)ms72_12951))==((void*)((C)->_system_name/*0*/))){
  430. R=1;
  431. }
  432.  else if((((T0*)ms72_1356))==((void*)((C)->_system_name/*0*/))){
  433. R=1;
  434. }
  435. /*FI]*/
  436. return R;
  437. }
  438.  
  439.  
  440. T6 r72slash_separator(T72* C){
  441. T6 R=0;
  442. /*[IF*/
  443. if((((T0*)ms72_1336))==((void*)((C)->_system_name/*0*/))){
  444. R=1;
  445. }
  446.  else if((((T0*)ms72_2470))==((void*)((C)->_system_name/*0*/))){
  447. R=1;
  448. }
  449. /*FI]*/
  450. return R;
  451. }
  452.  
  453.  
  454. T6 r72backslash_separator(T72* C){
  455. T6 R=0;
  456. /*[IF*/
  457. if((((T0*)ms72_9331))==((void*)((C)->_system_name/*0*/))){
  458. R=1;
  459. }
  460.  else if((((T0*)ms72_708))==((void*)((C)->_system_name/*0*/))){
  461. R=1;
  462. }
  463.  else if((((T0*)ms72_654))==((void*)((C)->_system_name/*0*/))){
  464. R=1;
  465. }
  466. /*FI]*/
  467. return R;
  468. }
  469. /*No:SYSTEM_TOOLS.unix_system*/
  470. /*No:SYSTEM_TOOLS.exit_failure_code*/
  471. /*No:SYSTEM_TOOLS.macintosh_system*/
  472. /*No:SYSTEM_TOOLS.bin_directory*/
  473. /*No:SYSTEM_TOOLS.tmp_path*/
  474. /*No:TYPE_FORMAL_GENERIC.start_position*/
  475.  
  476.  
  477. void r285jvm_initialize_local(T285* C,T2 a1){
  478. X52jvm_initialize_local((C)->_run_type/*12*/,a1);
  479. }
  480.  
  481.  
  482. void r285used_as_reference(T285* C){
  483. /*[IF*/
  484. if(r285is_expanded(C)){
  485. r23used_as_reference((T23*)(r285run_class(C)));
  486. }
  487. /*FI]*/
  488. }
  489.  
  490.  
  491. T6 r285is_user_expanded(T285* C){
  492. T6 R=0;
  493. R=X52is_user_expanded((C)->_run_type/*12*/);
  494. return R;
  495. }
  496.  
  497.  
  498. T2 r285id(T285* C){
  499. T2 R=0;
  500. R=((T23*)(r285run_class(C)))->_id/*4*/;
  501. return R;
  502. }
  503.  
  504.  
  505. T6 r285is_pointer(T285* C){
  506. T6 R=0;
  507. R=X52is_pointer((C)->_run_type/*12*/);
  508. return R;
  509. }
  510.  
  511.  
  512. void r285jvm_check_class_invariant(T285* C){
  513. X52jvm_check_class_invariant((C)->_run_type/*12*/);
  514. }
  515.  
  516.  
  517. T0* r285formal_arg(T285* C){
  518. T0* R=NULL;
  519. R=/*(IRF4.6item*/r284item(((T284*)(((T96*)(r285formal_generic_list(C)))->_list/*4*/)),(C)->_rank/*8*/)/*)*/;
  520. return R;
  521. }
  522.  
  523.  
  524. T0* r285to_runnable(T285* C,T0* a1){
  525. T0* R=NULL;
  526. T0* _gl=NULL;
  527. T0* _t=NULL;
  528. T0* _p=NULL;
  529. T0* _bc_ct=NULL;
  530. T0* _bc_written=NULL;
  531. _bc_written=r59base_class((T59*)(/*(IRF4.6start_position*/(((T70*)((C)->_formal_name/*4*/)))->_start_position/*4*//*)*/));
  532. _bc_ct=X52base_class(a1);
  533. /*[IF*/
  534. if((_bc_written)==((void*)(_bc_ct))){
  535. _gl=X52generic_list(a1);
  536. /*[IF*/
  537. if(((_gl)==((void*)(NULL)))||(((C)->_rank/*8*/)>((((T265*)_gl))->_upper/*8*/))){
  538. r21add_position(X52start_position(a1));
  539. r21add_position(/*(IRF4.6start_position*/(((T70*)((C)->_formal_name/*4*/)))->_start_position/*4*//*)*/);
  540. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms13_60544);
  541. r21fatal_error((T21*)(oBC12eh),b1);
  542. }/*]*/
  543. }
  544. else{
  545. R=r285make_runnable(C,r265item(((T265*)_gl),(C)->_rank/*8*/));
  546. }
  547. /*FI]*/
  548. }
  549. else{
  550. _p=/*(IRF4.6first_parent_for*/r81first_parent_for(((T81*)((((T63*)_bc_ct))->_parent_list/*40*/)),_bc_written)/*)*/;
  551. while (!((_p)==((void*)(NULL)))) {
  552. _t=(((T82*)_p))->_type/*4*/;
  553. _t=X52run_type(X52to_runnable(_t,a1));
  554. /*[IF*/
  555. if((R)==((void*)(NULL))){
  556. R=r285to_runnable(C,_t);
  557. _p=NULL;
  558. }
  559. else{
  560. _p=/*(IRF4.6next_parent_for*/r81next_parent_for(((T81*)((((T63*)_bc_ct))->_parent_list/*40*/)),_bc_written,_p)/*)*/;
  561. }
  562. /*FI]*/
  563. }
  564. /*[IF*/
  565. if((R)==((void*)(NULL))){
  566. r21add_type(a1,((T0*)ms285_18416));
  567. r285warning(/*(IRF4.6start_position*/(((T70*)((C)->_formal_name/*4*/)))->_start_position/*4*//*)*/,((T0*)ms285_50428));
  568. }
  569. /*FI]*/
  570. }
  571. /*FI]*/
  572. return R;
  573. }
  574.  
  575.  
  576. T0* r285run_class(T285* C){
  577. T0* R=NULL;
  578. R=r22run_class((C)->_run_type/*12*/);
  579. return R;
  580. }
  581.  
  582.  
  583. T0* r285formal_generic_list(T285* C){
  584. T0* R=NULL;
  585. R=((T63*)(r59base_class((T59*)(/*(IRF4.6start_position*/(((T70*)((C)->_formal_name/*4*/)))->_start_position/*4*//*)*/))))->_formal_generic_list/*28*/;
  586. return R;
  587. }
  588. /*No:TYPE_FORMAL_GENERIC.is_like_current*/
  589.  
  590.  
  591. T0* r285make_runnable(T285* C,T0* a1){
  592. T0* R=NULL;
  593. T0* _rt2=NULL;
  594. _rt2=X52run_type(a1);
  595. /*[IF*/
  596. if((_rt2)==((void*)(NULL))){
  597. /*[IF*/
  598. if((a1)!=((void*)(NULL))){
  599. r21add_position(X52start_position(a1));
  600. }
  601. /*FI]*/
  602. r285error(/*(IRF4.6start_position*/(((T70*)((C)->_formal_name/*4*/)))->_start_position/*4*//*)*/,((T0*)ms13_28959));
  603. }
  604.  else if(((C)->_run_type/*12*/)==((void*)(NULL))){
  605. C->_run_type=_rt2;
  606. R=(T0*)C;
  607. }
  608. else{
  609. R=r285twin(C);
  610. /*[IRF3.3set_run_type*/((((T285*)(((T285*)R))))->_run_type)=(_rt2);
  611. /*]*/
  612. }
  613. /*FI]*/
  614. return R;
  615. }
  616.  
  617.  
  618. T6 r285is_bit(T285* C){
  619. T6 R=0;
  620. R=X52is_bit((C)->_run_type/*12*/);
  621. return R;
  622. }
  623.  
  624.  
  625. T0* r285smallest_ancestor(T285* C,T0* a1){
  626. T0* R=NULL;
  627. R=X52smallest_ancestor((C)->_run_type/*12*/,a1);
  628. return R;
  629. }
  630.  
  631.  
  632. void r285jvm_write_local(T285* C,T2 a1){
  633. X52jvm_write_local((C)->_run_type/*12*/,a1);
  634. }
  635. /*No:TYPE_FORMAL_GENERIC.fatal_error*/
  636. /*No:TYPE_FORMAL_GENERIC.set_run_type*/
  637. /*No:TYPE_FORMAL_GENERIC.fz_bnga*/
  638.  
  639.  
  640. T0* r285run_time_mark(T285* C){
  641. T0* R=NULL;
  642. R=X52run_time_mark((C)->_run_type/*12*/);
  643. return R;
  644. }
  645.  
  646.  
  647. T6 r285is_expanded(T285* C){
  648. T6 R=0;
  649. R=X52is_expanded((C)->_run_type/*12*/);
  650. return R;
  651. }
  652.  
  653.  
  654. T2 r285jvm_if_x_eq(T285* C){
  655. T2 R=0;
  656. R=X52jvm_if_x_eq((C)->_run_type/*12*/);
  657. return R;
  658. }
  659.  
  660.  
  661. void r285jvm_xnewarray(T285* C){
  662. X52jvm_xnewarray((C)->_run_type/*12*/);
  663. }
  664.  
  665.  
  666. void r285warning(T0* a1,T0* a2){
  667. r21add_position(a1);
  668. r21warning((T21*)(oBC12eh),a2);
  669. }
  670.  
  671.  
  672. void r285jvm_push_local(T285* C,T2 a1){
  673. X52jvm_push_local((C)->_run_type/*12*/,a1);
  674. }
  675. /*No:TYPE_FORMAL_GENERIC.fz_dot*/
  676. /*No:TYPE_FORMAL_GENERIC.is_like_feature*/
  677.  
  678.  
  679. T6 r285is_a(T285* C,T0* a1){
  680. T6 R=0;
  681. R=X52is_a((C)->_run_type/*12*/,a1);
  682. return R;
  683. }
  684. /*No:TYPE_FORMAL_GENERIC.written_mark*/
  685.  
  686.  
  687. T6 r285is_character(T285* C){
  688. T6 R=0;
  689. R=X52is_character((C)->_run_type/*12*/);
  690. return R;
  691. }
  692.  
  693.  
  694. void r285error(T0* a1,T0* a2){
  695. r21add_position(a1);
  696. r21error((T21*)(oBC12eh),a2);
  697. }
  698.  
  699.  
  700. void r285make(T285* C,T0* a1,T2 a2){
  701. C->_rank=a2;
  702. C->_formal_name=a1;
  703. }
  704.  
  705.  
  706. T2 r285jvm_convert_to(T285* C,T0* a1){
  707. T2 R=0;
  708. R=X52jvm_convert_to((C)->_run_type/*12*/,a1);
  709. return R;
  710. }
  711.  
  712.  
  713. T6 r285is_array(T285* C){
  714. T6 R=0;
  715. R=X52is_array((C)->_run_type/*12*/);
  716. return R;
  717. }
  718.  
  719.  
  720. void r285fatal_error_generic_list(T285* C){
  721. r21add_type((T0*)C,((T0*)ms52_29184));
  722. r21print_as_fatal_error((T21*)(oBC12eh));
  723. }
  724. /*No:TYPE_FORMAL_GENERIC.fz_bga*/
  725.  
  726.  
  727. T2 r285jvm_push_default(T285* C){
  728. T2 R=0;
  729. R=X52jvm_push_default((C)->_run_type/*12*/);
  730. return R;
  731. }
  732.  
  733.  
  734. T6 r285is_dummy_expanded(T285* C){
  735. T6 R=0;
  736. R=X52is_dummy_expanded((C)->_run_type/*12*/);
  737. return R;
  738. }
  739.  
  740.  
  741. T0* r285generic_list(T285* C){
  742. T0* R=NULL;
  743. /*[IF*/
  744. if(r285is_generic(C)){
  745. R=X52generic_list((C)->_run_type/*12*/);
  746. }
  747. else{
  748. r285fatal_error_generic_list(C);
  749. }
  750. /*FI]*/
  751. return R;
  752. }
  753.  
  754.  
  755. T0* r285base_class(T285* C){
  756. T0* R=NULL;
  757. T0* _bcn=NULL;
  758. _bcn=r285base_class_name(C);
  759. /*[IF*/
  760. if((_bcn)!=((void*)(NULL))){
  761. R=r70base_class(((T70*)_bcn));
  762. }
  763. else{
  764. /*[IRF3.6append*/{T0* b1=((T0*)ms52_37098);
  765. r7append((T7*)(oBC21explanation),b1);
  766. }/*]*/
  767. r21add_type((T0*)C,((T0*)ms13_47));
  768. r21print_as_fatal_error((T21*)(oBC12eh));
  769. }
  770. /*FI]*/
  771. return R;
  772. }
  773.  
  774.  
  775. T2 r285jvm_if_x_ne(T285* C){
  776. T2 R=0;
  777. R=X52jvm_if_x_ne((C)->_run_type/*12*/);
  778. return R;
  779. }
  780. /*No:TYPE_FORMAL_GENERIC.formal_name*/
  781.  
  782.  
  783. T0* r285base_class_name(T285* C){
  784. T0* R=NULL;
  785. R=X52base_class_name((C)->_run_type/*12*/);
  786. return R;
  787. }
  788.  
  789.  
  790. void r285jvm_standard_is_equal(T285* C){
  791. X52jvm_standard_is_equal((C)->_run_type/*12*/);
  792. }
  793. /*No:TYPE_FORMAL_GENERIC.is_formal_generic*/
  794.  
  795.  
  796. T6 r285is_a_in(T285* C,T0* a1,T0* a2){
  797. T6 R=0;
  798. T0* _ct=NULL;
  799. T0* _t2=NULL;
  800. T0* _t1=NULL;
  801. /*[IF*/
  802. if((/*(IRF4.6written_mark*/(((T70*)((C)->_formal_name/*4*/)))->_to_string/*0*//*)*/)==((void*)(X52written_mark(a1)))){
  803. R=1;
  804. }
  805. else{
  806. _ct=(((T23*)a2))->_current_type/*0*/;
  807. _t1=r285to_runnable(C,_ct);
  808. _t2=X52to_runnable(a1,_ct);
  809. /*[IF*/
  810. if((X52run_time_mark(_t1))==((void*)(X52run_time_mark(_t2)))){
  811. R=1;
  812. }
  813. else{
  814. R=X52is_a(_t1,_t2);
  815. }
  816. /*FI]*/
  817. }
  818. /*FI]*/
  819. return R;
  820. }
  821. /*No:TYPE_FORMAL_GENERIC.rank*/
  822.  
  823.  
  824. T0* r285look_up_for(T285* C,T0* a1,T0* a2){
  825. T0* R=NULL;
  826. R=r63look_up_for((T63*)(r285base_class(C)),a1,a2);
  827. return R;
  828. }
  829. /*No:TYPE_FORMAL_GENERIC.run_type*/
  830.  
  831.  
  832. T0* r285expanded_initializer(T285* C){
  833. T0* R=NULL;
  834. R=X52expanded_initializer((C)->_run_type/*12*/);
  835. return R;
  836. }
  837.  
  838.  
  839. T6 r285has_creation(T285* C,T0* a1){
  840. T6 R=0;
  841. /*[IF*/
  842. if((C)==((void*)((C)->_run_type/*12*/))){
  843. R=r63has_creation((T63*)(r285base_class(C)),a1);
  844. }
  845. else{
  846. R=X52has_creation((C)->_run_type/*12*/,a1);
  847. }
  848. /*FI]*/
  849. return R;
  850. }
  851.  
  852.  
  853. T2 r285jvm_method_flags(T285* C){
  854. T2 R=0;
  855. R=X52jvm_method_flags((C)->_run_type/*12*/);
  856. return R;
  857. }
  858.  
  859.  
  860. T6 r285is_boolean(T285* C){
  861. T6 R=0;
  862. R=X52is_boolean((C)->_run_type/*12*/);
  863. return R;
  864. }
  865.  
  866.  
  867. T6 r285is_generic(T285* C){
  868. T6 R=0;
  869. R=X52is_generic((C)->_run_type/*12*/);
  870. return R;
  871. }
  872.  
  873.  
  874. void r285jvm_xaload(T285* C){
  875. X52jvm_xaload((C)->_run_type/*12*/);
  876. }
  877.  
  878.  
  879. T6 r285is_real(T285* C){
  880. T6 R=0;
  881. R=X52is_real((C)->_run_type/*12*/);
  882. return R;
  883. }
  884.  
  885.  
  886. T6 r285is_any(T285* C){
  887. T6 R=0;
  888. R=X52is_any((C)->_run_type/*12*/);
  889. return R;
  890. }
  891.  
  892.  
  893. T0* r285twin(T285* C){
  894. T0* R=NULL;
  895. R=malloc(sizeof(*C));
  896. *((T285*)R)=*C;
  897. return R;
  898. }
  899.  
  900.  
  901. T6 r285is_basic_eiffel_expanded(T285* C){
  902. T6 R=0;
  903. R=X52is_basic_eiffel_expanded((C)->_run_type/*12*/);
  904. return R;
  905. }
  906.  
  907.  
  908. void r285jvm_descriptor_in(T285* C,T0* a1){
  909. X52jvm_descriptor_in((C)->_run_type/*12*/,a1);
  910. }
  911.  
  912.  
  913. T6 r285is_string(T285* C){
  914. T6 R=0;
  915. R=X52is_string((C)->_run_type/*12*/);
  916. return R;
  917. }
  918.  
  919.  
  920. T6 r285is_native_array(T285* C){
  921. T6 R=0;
  922. T0* _tna=NULL;
  923. _tna=(T0*)C;
  924. if(NULL!=(_tna))switch(((T0*)_tna)->id) {
  925. case 267: 
  926. break;
  927. default:
  928. _tna=NULL;
  929. };R=(_tna)!=((void*)(NULL));
  930. return R;
  931. }
  932.  
  933.  
  934. T6 r285is_integer(T285* C){
  935. T6 R=0;
  936. R=X52is_integer((C)->_run_type/*12*/);
  937. return R;
  938. }
  939. /*No:TYPE_FORMAL_GENERIC.is_anchored*/
  940. /*No:TYPE_FORMAL_GENERIC.is_run_type*/
  941.  
  942.  
  943. T6 r285is_reference(T285* C){
  944. T6 R=0;
  945. R=X52is_reference((C)->_run_type/*12*/);
  946. return R;
  947. }
  948.  
  949.  
  950. T6 r285is_none(T285* C){
  951. T6 R=0;
  952. R=X52is_none((C)->_run_type/*12*/);
  953. return R;
  954. }
  955.  
  956.  
  957. void r285jvm_return_code(T285* C){
  958. X52jvm_return_code((C)->_run_type/*12*/);
  959. }
  960.  
  961.  
  962. void r285jvm_target_descriptor_in(T285* C,T0* a1){
  963. X52jvm_target_descriptor_in((C)->_run_type/*12*/,a1);
  964. }
  965.  
  966.  
  967. T0* r285constraint(T285* C){
  968. T0* R=NULL;
  969. R=((T283*)(r285formal_arg(C)))->_constraint/*4*/;
  970. return R;
  971. }
  972.  
  973.  
  974. void r285jvm_xastore(T285* C){
  975. X52jvm_xastore((C)->_run_type/*12*/);
  976. }
  977. /*No:TYPE_FORMAL_GENERIC.is_like_argument*/
  978.  
  979.  
  980. T2 r285jvm_stack_space(T285* C){
  981. T2 R=0;
  982. /*[IF*/
  983. if(r285is_double(C)){
  984. R=2;
  985. }
  986. else{
  987. R=1;
  988. }
  989. /*FI]*/
  990. return R;
  991. }
  992.  
  993.  
  994. T6 r285is_double(T285* C){
  995. T6 R=0;
  996. R=X52is_double((C)->_run_type/*12*/);
  997. return R;
  998. }
  999.  
  1000.  
  1001. T2 r285jvm_expanded_from_reference(T285* C,T0* a1){
  1002. T2 R=0;
  1003. R=X52jvm_expanded_from_reference((C)->_run_type/*12*/,a1);
  1004. return R;
  1005. }
  1006. /*No:MANIFEST_STRING.static_value*/
  1007. /*No:MANIFEST_STRING.is_static*/
  1008. /*No:MANIFEST_STRING.is_manifest_string*/
  1009. /*No:MANIFEST_STRING.start_position*/
  1010. /*No:MANIFEST_STRING.to_string*/
  1011.  
  1012.  
  1013. T0* r174add_comment(T174* C,T0* a1){
  1014. T0* R=NULL;
  1015. /*[IF*/
  1016. if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r73count(((T73*)((((T85*)a1))->_list/*4*/)))/*)*/)==(0))){
  1017. R=(T0*)C;
  1018. }
  1019. else{
  1020. {T234*n=malloc(sizeof(*n));
  1021. *n=M234;
  1022. r234make(n,(T0*)C,a1);
  1023. R=(T0*)n;
  1024. }
  1025. }
  1026. /*FI]*/
  1027. return R;
  1028. }
  1029.  
  1030.  
  1031. T2 r174to_integer(T174* C){
  1032. T2 R=0;
  1033. r174error((C)->_start_position/*4*/,((T0*)ms13_45846));
  1034. return R;
  1035. }
  1036. /*No:MANIFEST_STRING.use_current*/
  1037. /*No:MANIFEST_STRING.jvm_branch_if_true*/
  1038.  
  1039.  
  1040. T2 r174fieldref_idx(T174* C){
  1041. T2 R=0;
  1042. R=r29idx_fieldref_for_manifest_string((T29*)(oBC12constant_pool),(C)->_mangling/*24*/);
  1043. return R;
  1044. }
  1045.  
  1046.  
  1047. T0* r174to_runnable(T174* C,T0* a1){
  1048. T0* R=NULL;
  1049. /*[IF*/
  1050. if(((C)->_mangling/*24*/)==((void*)(NULL))){
  1051. C->_mangling=r346register((T0*)C);
  1052. }
  1053. /*FI]*/
  1054. R=(T0*)C;
  1055. return R;
  1056. }
  1057.  
  1058.  
  1059. T2 r174compile_to_jvm_into(T174* C,T0* a1){
  1060. T2 R=0;
  1061. R=1;
  1062. r174compile_to_jvm(C);
  1063. return R;
  1064. }
  1065. /*No:MANIFEST_STRING.is_pre_computable*/
  1066. /*No:MANIFEST_STRING.fz_iinaiv*/
  1067. /*No:MANIFEST_STRING.result_type*/
  1068.  
  1069.  
  1070. void r174break_line(T174* C){
  1071. /*[IF*/
  1072. if(((C)->_break/*12*/)==((void*)(NULL))){
  1073. C->_break=se_ma175(1,
  1074. (((T7*)((C)->_to_string/*8*/))->_count/*4*/)+(1));
  1075. }
  1076. else{
  1077. r175add_last((T175*)((C)->_break/*12*/),(((T7*)((C)->_to_string/*8*/))->_count/*4*/)+(1));
  1078. }
  1079. /*FI]*/
  1080. }
  1081. /*No:MANIFEST_STRING.compile_to_jvm_assignment*/
  1082. /*No:MANIFEST_STRING.percent*/
  1083. /*No:MANIFEST_STRING.compile_to_jvm_old*/
  1084. /*No:MANIFEST_STRING.jvm_assign*/
  1085. /*No:MANIFEST_STRING.jvm_branch_if_false*/
  1086.  
  1087.  
  1088. void r174compile_to_jvm(T174* C){
  1089. T2 _idx=0;
  1090. _idx=r174fieldref_idx(C);
  1091. r28opcode_getstatic((T28*)(oBC12code_attribute),_idx,1);
  1092. }
  1093. /*No:MANIFEST_STRING.is_result*/
  1094. /*No:MANIFEST_STRING.can_be_dropped*/
  1095.  
  1096.  
  1097. T0* r174twin(T174* C){
  1098. T0* R=NULL;
  1099. R=malloc(sizeof(*C));
  1100. *((T174*)R)=*C;
  1101. return R;
  1102. }
  1103.  
  1104.  
  1105. void r174compile_target_to_jvm(T174* C){
  1106. T2 _idx=0;
  1107. _idx=r174fieldref_idx(C);
  1108. r28opcode_getstatic((T28*)(oBC12code_attribute),_idx,1);
  1109. }
  1110. /*No:MANIFEST_STRING.isa_dca_inline_argument*/
  1111. /*No:MANIFEST_STRING.add*/
  1112.  
  1113.  
  1114. void r174error(T0* a1,T0* a2){
  1115. r21add_position(a1);
  1116. r21error((T21*)(oBC12eh),a2);
  1117. }
  1118.  
  1119.  
  1120. void r174make(T174* C,T0* a1){
  1121. C->_start_position=a1;
  1122. {T7*n=malloc(sizeof(*n));
  1123. *n=M7;
  1124. r7make(n,0);
  1125. C->_to_string=(T0*)n;
  1126. }
  1127. }
  1128.  
  1129.  
  1130. void r174add_percent(T174* C,T3 a1){
  1131. r7extend((T7*)((C)->_to_string/*8*/),a1);
  1132. /*[IF*/
  1133. if(((C)->_percent/*20*/)==((void*)(NULL))){
  1134. C->_percent=se_ma175(1,
  1135. ((T7*)((C)->_to_string/*8*/))->_count/*4*/);
  1136. }
  1137. else{
  1138. r175add_last((T175*)((C)->_percent/*20*/),((T7*)((C)->_to_string/*8*/))->_count/*4*/);
  1139. }
  1140. /*FI]*/
  1141. }
  1142. /*No:MANIFEST_STRING.is_current*/
  1143. /*No:MANIFEST_STRING.break*/
  1144. /*No:MANIFEST_STRING.is_void*/
  1145. /*No:MANIFEST_STRING.mangling*/
  1146.  
  1147.  
  1148. void r174add_ascii(T174* C,T3 a1){
  1149. r7extend((T7*)((C)->_to_string/*8*/),a1);
  1150. /*[IF*/
  1151. if(((C)->_ascii/*16*/)==((void*)(NULL))){
  1152. C->_ascii=se_ma175(1,
  1153. ((T7*)((C)->_to_string/*8*/))->_count/*4*/);
  1154. }
  1155. else{
  1156. r175add_last((T175*)((C)->_ascii/*16*/),((T7*)((C)->_to_string/*8*/))->_count/*4*/);
  1157. }
  1158. /*FI]*/
  1159. }
  1160. /*No:MANIFEST_STRING.afd_check*/
  1161. /*No:MANIFEST_STRING.ascii*/
  1162.  
  1163.  
  1164. T0* r174type_string(void){
  1165. if(fBC12type_string==0){
  1166. fBC12type_string=1;
  1167. {T276*n=malloc(sizeof(*n));
  1168. *n=M276;
  1169. r276make(n,NULL);
  1170. oBC12type_string=(T0*)n;
  1171. }
  1172. }
  1173. return oBC12type_string;}
  1174.  
  1175.  
  1176. T0* r191jvm_root_class(void){
  1177. if(fBC12jvm_root_class==0){
  1178. fBC12jvm_root_class=1;
  1179. {T7*n=malloc(sizeof(*n));
  1180. *n=M7;
  1181. r7make(n,12);
  1182. oBC12jvm_root_class=(T0*)n;
  1183. }
  1184. r7copy(((T7*)oBC12jvm_root_class),((T24*)(oBC12jvm))->_output_name/*0*/);
  1185. r7extend(((T7*)oBC12jvm_root_class),'\57');
  1186. r7append(((T7*)oBC12jvm_root_class),((T0*)ms13_1732));
  1187. }
  1188. return oBC12jvm_root_class;}
  1189. /*No:FORMAL_ARG_LIST.fz_jvm_root*/
  1190.  
  1191.  
  1192. T0* r191start_position(T191* C){
  1193. T0* R=NULL;
  1194. R=((T194*)(r195first((T195*)((C)->_flat_list/*8*/))))->_start_position/*4*/;
  1195. return R;
  1196. }
  1197.  
  1198.  
  1199. T6 r191is_a_in(T191* C,T0* a1,T0* a2){
  1200. T6 R=0;
  1201. T0* _t2=NULL;
  1202. T0* _t1=NULL;
  1203. T2 _i=0;
  1204. _i=/*(IRF4.6count*/(((T195*)((C)->_flat_list/*8*/)))->_upper/*12*//*)*/;
  1205. /*[IF*/
  1206. if((/*(IRF4.6count*/(((T195*)((((T191*)a1))->_flat_list/*8*/)))->_upper/*12*//*)*/)!=(_i)){
  1207. r21add_position(r191start_position(((T191*)a1)));
  1208. r191error(r191start_position(C),((T0*)ms191_36576));
  1209. }
  1210. /*FI]*/
  1211. /*[IF*/
  1212. if((/*(IRF4.9nb_errors*/((T21*)(oBC12eh))->_nb_errors/*4*//*)*/)==(0)){
  1213. R=1;
  1214. while (!((!(R))||((_i)==(0)))) {
  1215. _t1=r191type(C,_i);
  1216. _t2=r191type(((T191*)a1),_i);
  1217. /*[IF*/
  1218. if(!(X52is_a_in(_t1,_t2,a2))){
  1219. R=0;
  1220. r21print_as_error((T21*)(oBC12eh));
  1221. r21add_position(X52start_position(_t1));
  1222. r21add_position(X52start_position(_t2));
  1223. /*[IRF3.6append*/{T0* b1=((T0*)ms191_26862);
  1224. r7append((T7*)(oBC21explanation),b1);
  1225. }/*]*/
  1226. /*[IRF3.6append*/{T0* b1=X52run_time_mark((((T23*)a2))->_current_type/*0*/);
  1227. r7append((T7*)(oBC21explanation),b1);
  1228. }/*]*/
  1229. r21error((T21*)(oBC12eh),((T0*)ms13_47));
  1230. }
  1231. /*FI]*/
  1232. _i=(_i)-(1);
  1233. }
  1234. }
  1235. /*FI]*/
  1236. return R;
  1237. }
  1238.  
  1239.  
  1240. void r191add_last(T191* C,T0* a1){
  1241. T0* _n2=NULL;
  1242. T2 _i=0;
  1243. _i=1;
  1244. while (!((r195item((T195*)((C)->_flat_list/*8*/),_i))==((void*)(NULL)))) {
  1245. _n2=r195item((T195*)((C)->_flat_list/*8*/),_i);
  1246. /*[IF*/
  1247. if(((((T194*)_n2))->_to_string/*8*/)==((void*)((((T194*)a1))->_to_string/*8*/))){
  1248. r21add_position((((T194*)a1))->_start_position/*4*/);
  1249. r21add_position((((T194*)_n2))->_start_position/*4*/);
  1250. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms183_36984);
  1251. r21fatal_error((T21*)(oBC12eh),b1);
  1252. }/*]*/
  1253. }
  1254. /*FI]*/
  1255. _i=(_i)+(1);
  1256. }
  1257. /*[IRF3.6put*/{T195* C1=(T195*)((C)->_flat_list/*8*/);
  1258. T0* b1=a1;
  1259. T2 b2=_i;
  1260. ((C1)->_storage/*4*/)[(b2)-((C1)->_lower/*16*/)]=(b1);
  1261. }/*]*/
  1262. /*[IRF3.3set_rank*/((((T194*)(((T194*)a1))))->_rank)=(_i);
  1263. /*]*/
  1264. }
  1265. /*No:FORMAL_ARG_LIST.em1*/
  1266.  
  1267.  
  1268. T2 r191jvm_offset_of(T191* C,T0* a1){
  1269. T2 R=0;
  1270. T2 _rank=0;
  1271. T2 _i=0;
  1272. _rank=X186rank(a1);
  1273. _i=1;
  1274. while (!((_i)==(_rank))) {
  1275. R=(R)+(X52jvm_stack_space(X52run_type(r191type(C,_i))));
  1276. _i=(_i)+(1);
  1277. }
  1278. return R;
  1279. }
  1280. /*No:FORMAL_ARG_LIST.fz_cad*/
  1281.  
  1282.  
  1283. void r191check_name_clash(T191* C,T0* a1){
  1284. T2 _i=0;
  1285. _i=((T195*)((C)->_flat_list/*8*/))->_upper/*12*/;
  1286. while (!((_i)==(0))) {
  1287. /*[IRF3.6name_clash*/{T194* C1=(T194*)(/*(IRF4.6name*/r195item(((T195*)((C)->_flat_list/*8*/)),_i)/*)*/);
  1288. T0* b1=a1;
  1289. r194name_clash_for(C1,b1,((T0*)ms194_120934));
  1290. }/*]*/
  1291. _i=(_i)-(1);
  1292. }
  1293. }
  1294.  
  1295.  
  1296. void r191with(T191* C,T0* a1,T0* a2){
  1297. *((T191*)(C))=*((T191*)(a1));
  1298. r191dynamic_runnable(C,a2);
  1299. r191check_name_clash(C,a2);
  1300. }
  1301. /*No:FORMAL_ARG_LIST.list*/
  1302. int fBC12jvm_root_descriptor=0;
  1303. T0*oBC12jvm_root_descriptor=NULL;
  1304.  
  1305.  
  1306. T0* r191jvm_root_descriptor(void){
  1307. if(fBC12jvm_root_descriptor==0){
  1308. fBC12jvm_root_descriptor=1;
  1309. {T7*n=malloc(sizeof(*n));
  1310. *n=M7;
  1311. r7make(n,12);
  1312. oBC12jvm_root_descriptor=(T0*)n;
  1313. }
  1314. r7extend(((T7*)oBC12jvm_root_descriptor),'L');
  1315. r7append(((T7*)oBC12jvm_root_descriptor),r191jvm_root_class());
  1316. r7extend(((T7*)oBC12jvm_root_descriptor),'\73');
  1317. }
  1318. return oBC12jvm_root_descriptor;}
  1319.  
  1320.  
  1321. T2 r191jvm_switch_push(T191* C,T0* a1){
  1322. T2 R=0;
  1323. T2 _i=0;
  1324. _i=1;
  1325. while (!((_i)>(/*(IRF4.6count*/(((T195*)((C)->_flat_list/*8*/)))->_upper/*12*//*)*/))) {
  1326. R=(R)+(r191jvm_switch_push_ith(C,a1,_i));
  1327. _i=(_i)+(1);
  1328. }
  1329. return R;
  1330. }
  1331. /*No:FORMAL_ARG_LIST.fatal_error*/
  1332. /*No:FORMAL_ARG_LIST.nb_errors*/
  1333.  
  1334.  
  1335. T0* r191type(T191* C,T2 a1){
  1336. T0* R=NULL;
  1337. R=((T194*)(/*(IRF4.6name*/r195item(((T195*)((C)->_flat_list/*8*/)),a1)/*)*/))->_result_type/*12*/;
  1338. return R;
  1339. }
  1340.  
  1341.  
  1342. T2 r191rank_of(T191* C,T0* a1){
  1343. T2 R=0;
  1344. R=/*(IRF4.6count*/(((T195*)((C)->_flat_list/*8*/)))->_upper/*12*//*)*/;
  1345. while (!(((R)==(0))||((a1)==((void*)(((T194*)(/*(IRF4.6name*/r195item(((T195*)((C)->_flat_list/*8*/)),R)/*)*/))->_to_string/*8*/))))) {
  1346. R=(R)-(1);
  1347. }
  1348. return R;
  1349. }
  1350.  
  1351.  
  1352. void r191jvm_descriptor_in(T191* C,T0* a1){
  1353. T0* _at=NULL;
  1354. T2 _i=0;
  1355. _i=1;
  1356. while (!((_i)>(/*(IRF4.6count*/(((T195*)((C)->_flat_list/*8*/)))->_upper/*12*//*)*/))) {
  1357. _at=X52run_type(r191type(C,_i));
  1358. /*[IF*/
  1359. if(X52is_reference(_at)){
  1360. r7append(((T7*)a1),r191jvm_root_descriptor());
  1361. }
  1362. else{
  1363. X52jvm_descriptor_in(_at,a1);
  1364. }
  1365. /*FI]*/
  1366. _i=(_i)+(1);
  1367. }
  1368. }
  1369.  
  1370.  
  1371. void r191dynamic_runnable(T191* C,T0* a1){
  1372. T0* _n2=NULL;
  1373. T0* _n1=NULL;
  1374. T2 _i=0;
  1375. C->_flat_list=r195twin((T195*)((C)->_flat_list/*8*/));
  1376. _i=((T195*)((C)->_flat_list/*8*/))->_upper/*12*/;
  1377. while (!((_i)==(0))) {
  1378. _n1=r195item((T195*)((C)->_flat_list/*8*/),_i);
  1379. _n2=r194to_runnable(((T194*)_n1),a1);
  1380. /*[IF*/
  1381. if((_n2)==((void*)(NULL))){
  1382. r191error((((T194*)_n1))->_start_position/*4*/,((T0*)ms183_18336));
  1383. }
  1384. else{
  1385. /*[IRF3.6put*/{T195* C1=(T195*)((C)->_flat_list/*8*/);
  1386. T0* b1=_n2;
  1387. T2 b2=_i;
  1388. ((C1)->_storage/*4*/)[(b2)-((C1)->_lower/*16*/)]=(b1);
  1389. }/*]*/
  1390. }
  1391. /*FI]*/
  1392. _i=(_i)-(1);
  1393. }
  1394. }
  1395.  
  1396.  
  1397. T2 r191jvm_switch_push_ith(T191* C,T0* a1,T2 a2){
  1398. T2 R=0;
  1399. T2 _offset=0;
  1400. T0* _at=NULL;
  1401. T0* _ft=NULL;
  1402. _offset=r24argument_offset_of((T24*)(oBC12jvm),/*(IRF4.6name*/r195item(((T195*)((C)->_flat_list/*8*/)),a2)/*)*/);
  1403. _ft=X52run_type(r191type(C,a2));
  1404. _at=X52run_type(r191type(((T191*)a1),a2));
  1405. X52jvm_push_local(_ft,_offset);
  1406. R=X52jvm_convert_to(_ft,_at);
  1407. return R;
  1408. }
  1409. /*No:FORMAL_ARG_LIST.fz_dot*/
  1410.  
  1411.  
  1412. T6 r191is_runnable(T191* C,T0* a1){
  1413. T6 R=0;
  1414. T0* _t=NULL;
  1415. T0* _n2=NULL;
  1416. T0* _n1=NULL;
  1417. T2 _i=0;
  1418. R=1;
  1419. _i=((T195*)((C)->_flat_list/*8*/))->_upper/*12*/;
  1420. while (!((!(R))||((_i)==(0)))) {
  1421. _t=r191type(C,_i);
  1422. /*[IF*/
  1423. if(X52is_run_type(_t)){
  1424. /*[IF*/
  1425. if((X52run_type(_t))!=((void*)(_t))){
  1426. R=0;
  1427. }
  1428. /*FI]*/
  1429. }
  1430. else{
  1431. R=0;
  1432. }
  1433. /*FI]*/
  1434. _i=(_i)-(1);
  1435. }
  1436. /*[IF*/
  1437. if(R){
  1438. _i=((T195*)((C)->_flat_list/*8*/))->_upper/*12*/;
  1439. while (!((_i)==(0))) {
  1440. _n1=r195item((T195*)((C)->_flat_list/*8*/),_i);
  1441. _n2=r194to_runnable(((T194*)_n1),a1);
  1442. /*[IF*/
  1443. if((_n2)==((void*)(NULL))){
  1444. r191error((((T194*)_n1))->_start_position/*4*/,((T0*)ms183_18336));
  1445. _i=0;
  1446. }
  1447. else{
  1448. _i=(_i)-(1);
  1449. }
  1450. /*FI]*/
  1451. }
  1452. r191check_name_clash(C,a1);
  1453. }
  1454. /*FI]*/
  1455. return R;
  1456. }
  1457. /*No:FORMAL_ARG_LIST.count*/
  1458.  
  1459.  
  1460. void r191error(T0* a1,T0* a2){
  1461. r21add_position(a1);
  1462. r21error((T21*)(oBC12eh),a2);
  1463. }
  1464.  
  1465.  
  1466. void r191make(T191* C,T0* a1){
  1467. T0* _an2=NULL;
  1468. T2 _rank=0;
  1469. T2 _i=0;
  1470. T0* _tla2=NULL;
  1471. T0* _tla=NULL;
  1472. T0* _tlf=NULL;
  1473. T0* _an=NULL;
  1474. r191declaration_list_make(C,a1);
  1475. _i=/*(IRF4.6count*/(((T195*)((C)->_flat_list/*8*/)))->_upper/*12*//*)*/;
  1476. while (!((_i)==(0))) {
  1477. _an=/*(IRF4.6name*/r195item(((T195*)((C)->_flat_list/*8*/)),_i)/*)*/;
  1478. _tlf=(((T194*)_an))->_result_type/*12*/;
  1479. if(NULL!=(_tlf))switch(((T0*)_tlf)->id) {
  1480. case 259: 
  1481. break;
  1482. default:
  1483. _tlf=NULL;
  1484. };/*[IF*/
  1485. if((_tlf)!=((void*)(NULL))){
  1486. _rank=r191rank_of(C,X50to_string((((T259*)_tlf))->_like_what/*8*/));
  1487. /*[IF*/
  1488. if((_rank)==(_i)){
  1489. r21add_position((((T259*)_tlf))->_start_position/*4*/);
  1490. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms13_47439);
  1491. r21fatal_error((T21*)(oBC12eh),b1);
  1492. }/*]*/
  1493. }
  1494.  else if((_rank)>(0)){
  1495. {T192*n=malloc(sizeof(*n));
  1496. *n=M192;
  1497. r192refer_to(n,X50start_position((((T259*)_tlf))->_like_what/*8*/),(T0*)C,_rank);
  1498. _an2=(T0*)n;
  1499. }
  1500. {T262*n=malloc(sizeof(*n));
  1501. *n=M262;
  1502. r262make(n,(((T259*)_tlf))->_start_position/*4*/,_an2);
  1503. _tla=(T0*)n;
  1504. }
  1505. /*[IRF3.3set_result_type*/((((T194*)(((T194*)_an))))->_result_type)=(_tla);
  1506. /*]*/
  1507. }
  1508. /*FI]*/
  1509. }
  1510. /*FI]*/
  1511. _i=(_i)-(1);
  1512. }
  1513. /*[IF*/
  1514. if(r76all_check((T76*)(oBC12run_control))){
  1515. _i=/*(IRF4.6count*/(((T195*)((C)->_flat_list/*8*/)))->_upper/*12*//*)*/;
  1516. while (!((_i)==(0))) {
  1517. _tla=((T194*)(/*(IRF4.6name*/r195item(((T195*)((C)->_flat_list/*8*/)),_i)/*)*/))->_result_type/*12*/;
  1518. if(NULL!=(_tla))switch(((T0*)_tla)->id) {
  1519. case 262: 
  1520. break;
  1521. default:
  1522. _tla=NULL;
  1523. };/*[IF*/
  1524. if((_tla)!=((void*)(NULL))){
  1525. _rank=r191rank_of(C,r192to_string((T192*)((((T262*)_tla))->_like_what/*8*/)));
  1526. _tla2=((T194*)(/*(IRF4.6name*/r195item(((T195*)((C)->_flat_list/*8*/)),_rank)/*)*/))->_result_type/*12*/;
  1527. if(NULL!=(_tla2))switch(((T0*)_tla2)->id) {
  1528. case 262: 
  1529. break;
  1530. default:
  1531. _tla2=NULL;
  1532. };/*[IF*/
  1533. if((_tla2)!=((void*)(NULL))){
  1534. r21add_position((((T262*)_tla))->_start_position/*4*/);
  1535. r21add_position((((T262*)_tla2))->_start_position/*4*/);
  1536. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms13_47439);
  1537. r21fatal_error((T21*)(oBC12eh),b1);
  1538. }/*]*/
  1539. }
  1540. /*FI]*/
  1541. }
  1542. /*FI]*/
  1543. _i=(_i)-(1);
  1544. }
  1545. }
  1546. /*FI]*/
  1547. }
  1548.  
  1549.  
  1550. void r191declaration_list_make(T191* C,T0* a1){
  1551. T2 _actual_count=0;
  1552. T2 _il=0;
  1553. C->_list=a1;
  1554. _il=((T313*)((C)->_list/*4*/))->_upper/*8*/;
  1555. while (!((_il)==(0))) {
  1556. _actual_count=(_actual_count)+(X312count(r313item((T313*)((C)->_list/*4*/),_il)));
  1557. _il=(_il)-(1);
  1558. }
  1559. {T195*n=malloc(sizeof(*n));
  1560. *n=M195;
  1561. r195make(n,1,_actual_count);
  1562. C->_flat_list=(T0*)n;
  1563. }
  1564. _il=1;
  1565. while (!((_il)>(((T313*)((C)->_list/*4*/))->_upper/*8*/))) {
  1566. X312append_in(r313item((T313*)((C)->_list/*4*/),_il),(T0*)C);
  1567. _il=(_il)+(1);
  1568. }
  1569. }
  1570. /*No:FORMAL_ARG_LIST.name*/
  1571. /*No:FORMAL_ARG_LIST.flat_list*/
  1572.  
  1573.  
  1574. T2 r191jvm_stack_space(T191* C){
  1575. T2 R=0;
  1576. T2 _i=0;
  1577. _i=/*(IRF4.6count*/(((T195*)((C)->_flat_list/*8*/)))->_upper/*12*//*)*/;
  1578. while (!((_i)==(0))) {
  1579. R=(R)+(X52jvm_stack_space(X52run_type(r191type(C,_i))));
  1580. _i=(_i)-(1);
  1581. }
  1582. return R;
  1583. }
  1584.  
  1585.  
  1586. T0* r53jvm_root_class(void){
  1587. if(fBC12jvm_root_class==0){
  1588. fBC12jvm_root_class=1;
  1589. {T7*n=malloc(sizeof(*n));
  1590. *n=M7;
  1591. r7make(n,12);
  1592. oBC12jvm_root_class=(T0*)n;
  1593. }
  1594. r7copy(((T7*)oBC12jvm_root_class),((T24*)(oBC12jvm))->_output_name/*0*/);
  1595. r7extend(((T7*)oBC12jvm_root_class),'\57');
  1596. r7append(((T7*)oBC12jvm_root_class),((T0*)ms13_1732));
  1597. }
  1598. return oBC12jvm_root_class;}
  1599.  
  1600.  
  1601. void r53fall_down(T53* C){
  1602. T0* _rf=NULL;
  1603. T0* _sub_name=NULL;
  1604. T0* _sub_bc=NULL;
  1605. T0* _current_bc=NULL;
  1606. T0* _sub_rc=NULL;
  1607. T0* _current_rc=NULL;
  1608. T2 _i=0;
  1609. T0* _running=NULL;
  1610. _current_rc=X52run_class((C)->_current_type/*4*/);
  1611. _running=(((T23*)_current_rc))->_running/*12*/;
  1612. /*[IF*/
  1613. if((_running)!=((void*)(NULL))){
  1614. _current_bc=X52base_class((C)->_current_type/*4*/);
  1615. _i=(((T340*)_running))->_lower/*12*/;
  1616. while (!((_i)>((((T340*)_running))->_upper/*8*/))) {
  1617. _sub_rc=r340item(((T340*)_running),_i);
  1618. /*[IF*/
  1619. if((_sub_rc)!=((void*)(_current_rc))){
  1620. _sub_bc=X52base_class((((T23*)_sub_rc))->_current_type/*0*/);
  1621. _sub_name=r63new_name_of(((T63*)_sub_bc),_current_bc,(C)->_name/*16*/);
  1622. _rf=r23get_feature(((T23*)_sub_rc),_sub_name);
  1623. }
  1624. /*FI]*/
  1625. _i=(_i)+(1);
  1626. }
  1627. }
  1628. /*FI]*/
  1629. }
  1630. /*No:RUN_FEATURE_2.use_current_state*/
  1631. /*No:RUN_FEATURE_2.actuals_clients*/
  1632. /*No:RUN_FEATURE_2.ucs_false*/
  1633. /*No:RUN_FEATURE_2.is_static*/
  1634. /*No:RUN_FEATURE_2.fz_jvm_root*/
  1635.  
  1636.  
  1637. T0* r53start_position(T53* C){
  1638. T0* R=NULL;
  1639. R=r319start_position((T319*)((C)->_base_feature/*24*/));
  1640. return R;
  1641. }
  1642.  
  1643.  
  1644. T6 r53use_current(T53* C){
  1645. T6 R=0;
  1646. {int z1=(C)->_use_current_state/*20*/;
  1647.  
  1648. if((14==z1)){
  1649. R=1;
  1650. }
  1651.  else 
  1652. if((13==z1)){
  1653. }
  1654.  else 
  1655. if((15==z1)){
  1656. C->_use_current_state=16;
  1657. /*[IRF3.3compute_use_current*/((((T53*)(C)))->_use_current_state)=(14);
  1658. /*]*/
  1659. R=r53use_current(C);
  1660. }
  1661.  else {R=1;
  1662. }}
  1663. return R;
  1664. }
  1665.  
  1666.  
  1667. void r53mapping_jvm(T53* C){
  1668. T2 _stack_level=0;
  1669. T2 _idx=0;
  1670. r24push_target_as_target((T24*)(oBC12jvm));
  1671. /*[IF*/
  1672. if(X52is_basic_eiffel_expanded((C)->_current_type/*4*/)){
  1673. }
  1674. else{
  1675. _stack_level=(X52jvm_stack_space((C)->_result_type/*28*/))-(1);
  1676. _idx=r29idx_fieldref((T29*)(oBC12constant_pool),(T0*)C);
  1677. r28opcode_getfield((T28*)(oBC12code_attribute),_idx,_stack_level);
  1678. }
  1679. /*FI]*/
  1680. }
  1681. T0*oBC27tmp_jvm_descriptor=NULL;
  1682. /*No:RUN_FEATURE_2.ucs_not_computed*/
  1683. /*No:RUN_FEATURE_2.is_pre_computable*/
  1684.  
  1685.  
  1686. T0* r53run_class(T53* C){
  1687. T0* R=NULL;
  1688. R=X52run_class((C)->_current_type/*4*/);
  1689. return R;
  1690. }
  1691. /*No:RUN_FEATURE_2.result_type*/
  1692. /*No:RUN_FEATURE_2.base_feature*/
  1693. /*No:RUN_FEATURE_2.static_value_mem*/
  1694.  
  1695.  
  1696. T2 r53jvm_local_variable_offset(T53* C,T0* a1){
  1697. T2 R=0;
  1698. R=X52jvm_stack_space((C)->_current_type/*4*/);
  1699. /*[IF*/
  1700. /*AF*//*AE*/
  1701. /*FI]*/
  1702. R=(R)+(r182jvm_offset_of((T182*)(/*(IRF4.1local_vars*/NULL/*)*/),a1));
  1703. return R;
  1704. }
  1705.  
  1706.  
  1707. T2 r53arg_count(void){
  1708. T2 R=0;
  1709. /*[IF*/
  1710. /*AF*//*AE*/
  1711. /*FI]*/
  1712. return R;
  1713. }
  1714.  
  1715.  
  1716. T0* r53jvm_root_descriptor(void){
  1717. if(fBC12jvm_root_descriptor==0){
  1718. fBC12jvm_root_descriptor=1;
  1719. {T7*n=malloc(sizeof(*n));
  1720. *n=M7;
  1721. r7make(n,12);
  1722. oBC12jvm_root_descriptor=(T0*)n;
  1723. }
  1724. r7extend(((T7*)oBC12jvm_root_descriptor),'L');
  1725. r7append(((T7*)oBC12jvm_root_descriptor),r53jvm_root_class());
  1726. r7extend(((T7*)oBC12jvm_root_descriptor),'\73');
  1727. }
  1728. return oBC12jvm_root_descriptor;}
  1729.  
  1730.  
  1731. T6 r53is_exported_in(T53* C,T0* a1){
  1732. T6 R=0;
  1733. R=r103gives_permission_to((T103*)(r53clients(C)),a1);
  1734. return R;
  1735. }
  1736. /*No:RUN_FEATURE_2.arguments*/
  1737.  
  1738.  
  1739. T2 r53jvm_argument_offset(T53* C,T0* a1){
  1740. T2 R=0;
  1741. R=X52jvm_stack_space((C)->_current_type/*4*/);
  1742. R=(R)+(r191jvm_offset_of((T191*)(/*(IRF4.1arguments*/NULL/*)*/),a1));
  1743. return R;
  1744. }
  1745. /*No:RUN_FEATURE_2.can_be_dropped*/
  1746.  
  1747.  
  1748. void r53initialize(T53* C){
  1749. C->_result_type=((T319*)((C)->_base_feature/*24*/))->_result_type/*20*/;
  1750. C->_result_type=X52to_runnable((C)->_result_type/*28*/,(C)->_current_type/*4*/);
  1751. }
  1752.  
  1753.  
  1754. void r53update_tmp_jvm_descriptor(T53* C){
  1755. T0* _rt=NULL;
  1756. _rt=X52run_type((C)->_result_type/*28*/);
  1757. /*[IF*/
  1758. if(X52is_reference(_rt)){
  1759. r7append((T7*)(oBC27tmp_jvm_descriptor),r53jvm_root_descriptor());
  1760. }
  1761. else{
  1762. X52jvm_descriptor_in(_rt,oBC27tmp_jvm_descriptor);
  1763. }
  1764. /*FI]*/
  1765. }
  1766.  
  1767.  
  1768. T2 r53jvm_max_locals(T53* C){
  1769. T2 R=0;
  1770. R=X52jvm_stack_space((C)->_current_type/*4*/);
  1771. /*[IF*/
  1772. /*AF*//*AE*/
  1773. /*FI]*/
  1774. /*[IF*/
  1775. /*AF*//*AE*/
  1776. /*FI]*/
  1777. /*[IF*/
  1778. if(((C)->_result_type/*28*/)!=((void*)(NULL))){
  1779. R=(R)+(X52jvm_stack_space((C)->_result_type/*28*/));
  1780. }
  1781. /*FI]*/
  1782. return R;
  1783. }
  1784. /*No:RUN_FEATURE_2.clients_memory*/
  1785. /*No:RUN_FEATURE_2.current_type*/
  1786.  
  1787.  
  1788. void r53add_client(T53* C,T0* a1){
  1789. T2 _i=0;
  1790. /*[IF*/
  1791. if(((C)->_actuals_clients/*12*/)==((void*)(NULL))){
  1792. {T343*n=malloc(sizeof(*n));
  1793. *n=M343;
  1794. r343with_capacity(n,4);
  1795. C->_actuals_clients=(T0*)n;
  1796. }
  1797. r343add_last((T343*)((C)->_actuals_clients/*12*/),a1);
  1798. }
  1799. else{
  1800. _i=r343fast_index_of((T343*)((C)->_actuals_clients/*12*/),a1);
  1801. /*[IF*/
  1802. if((_i)>(((T343*)((C)->_actuals_clients/*12*/))->_upper/*8*/)){
  1803. r343add_last((T343*)((C)->_actuals_clients/*12*/),a1);
  1804. }
  1805. /*FI]*/
  1806. }
  1807. /*FI]*/
  1808. r23add_client((T23*)(r53run_class(C)),a1);
  1809. }
  1810. /*No:RUN_FEATURE_2.ucs_in_computation*/
  1811. /*No:RUN_FEATURE_2.compute_use_current*/
  1812.  
  1813.  
  1814. void r53make(T53* C,T0* a1,T0* a2,T0* a3){
  1815. C->_current_type=a1;
  1816. C->_name=a2;
  1817. C->_base_feature=a3;
  1818. /*[IRF3.5add_rf*/r333put(((T333*)(((T23*)(r53run_class(C)))->_feature_dictionary/*24*/)),(T0*)C,X50to_key(a2));
  1819. /*]*/
  1820. r22incr_magic_count((T22*)(oBC12small_eiffel));
  1821. C->_use_current_state=15;
  1822. r22push((T22*)(oBC12small_eiffel),(T0*)C);
  1823. r53initialize(C);
  1824. r22pop((T22*)(oBC12small_eiffel));
  1825. }
  1826. /*No:RUN_FEATURE_2.ucs_true*/
  1827.  
  1828.  
  1829. void r53jvm_define(T53* C){
  1830. T0* _cp=NULL;
  1831. T2 _descriptor=0;
  1832. T2 _name_idx=0;
  1833. _cp=oBC12constant_pool;
  1834. _name_idx=r29idx_utf8(((T29*)_cp),X50to_string((C)->_name/*16*/));
  1835. _descriptor=r29idx_utf8(((T29*)_cp),r53jvm_descriptor(C));
  1836. r40add((T40*)(oBC12field_info),1,_name_idx,_descriptor);
  1837. }
  1838. /*No:RUN_FEATURE_2.name*/
  1839. /*No:RUN_FEATURE_2.local_vars*/
  1840.  
  1841.  
  1842. T2 r53jvm_result_offset(T53* C){
  1843. T2 R=0;
  1844. R=X52jvm_stack_space((C)->_current_type/*4*/);
  1845. /*[IF*/
  1846. /*AF*//*AE*/
  1847. /*FI]*/
  1848. /*[IF*/
  1849. /*AF*//*AE*/
  1850. /*FI]*/
  1851. return R;
  1852. }
  1853. /*No:RUN_FEATURE_2.jvm_field_or_method*/
  1854.  
  1855.  
  1856. void r53afd_check(T53* C){
  1857. T0* _rc=NULL;
  1858. _rc=X52run_class(X52run_type((C)->_result_type/*28*/));
  1859. }
  1860.  
  1861.  
  1862. T0* r53clients(T53* C){
  1863. T0* R=NULL;
  1864. T0* _bfbc=NULL;
  1865. T0* _bc=NULL;
  1866. /*[IF*/
  1867. if(((C)->_clients_memory/*8*/)==((void*)(NULL))){
  1868. _bc=X52base_class((C)->_current_type/*4*/);
  1869. _bfbc=((T319*)((C)->_base_feature/*24*/))->_base_class/*4*/;
  1870. /*[IF*/
  1871. if((_bc)==((void*)(_bfbc))){
  1872. R=((T319*)((C)->_base_feature/*24*/))->_clients/*16*/;
  1873. }
  1874. else{
  1875. R=r63clients_for(((T63*)_bc),(C)->_name/*16*/);
  1876. }
  1877. /*FI]*/
  1878. C->_clients_memory=R;
  1879. }
  1880. else{
  1881. R=(C)->_clients_memory/*8*/;
  1882. }
  1883. /*FI]*/
  1884. return R;
  1885. }
  1886.  
  1887.  
  1888. T0* r53jvm_descriptor(T53* C){
  1889. T0* R=NULL;
  1890. /*[IRF3.3clear*/((((T7*)((T7*)(oBC27tmp_jvm_descriptor))))->_count)=(0);
  1891. /*]*/
  1892. r53update_tmp_jvm_descriptor(C);
  1893. R=oBC27tmp_jvm_descriptor;
  1894. return R;
  1895. }
  1896.  
  1897.  
  1898. void r87make_n(T87* C,T0* a1){
  1899. T2 _j=0;
  1900. T2 _i=0;
  1901. _i=(((T88*)a1))->_upper/*8*/;
  1902. while (!((_i)<(0))) {
  1903. _j=(_i)-(1);
  1904. while (!((_j)<(0))) {
  1905. /*[IF*/
  1906. if((X50to_key(/*(IRF4.6item*/((((T88*)a1))->_storage/*0*/)[_i]/*)*/))==((void*)(X50to_key(/*(IRF4.6item*/((((T88*)a1))->_storage/*0*/)[_j]/*)*/)))){
  1907. r87fe_multiple(/*(IRF4.6item*/((((T88*)a1))->_storage/*0*/)[_i]/*)*/,/*(IRF4.6item*/((((T88*)a1))->_storage/*0*/)[_j]/*)*/);
  1908. }
  1909. /*FI]*/
  1910. _j=(_j)-(1);
  1911. }
  1912. _i=(_i)-(1);
  1913. }
  1914. C->_first=/*(IRF4.6item*/((((T88*)a1))->_storage/*0*/)[0]/*)*/;
  1915. _i=(((T88*)a1))->_upper/*8*/;
  1916. /*[IF*/
  1917. if((_i)>(0)){
  1918. {T88*n=malloc(sizeof(*n));
  1919. *n=M88;
  1920. r88make(n,_i);
  1921. C->_remainder=(T0*)n;
  1922. }
  1923. _j=0;
  1924. while (!((_i)==(0))) {
  1925. /*[IRF3.5put*/(((T88*)((C)->_remainder/*4*/))->_storage/*0*/)[_j]=(/*(IRF4.6item*/((((T88*)a1))->_storage/*0*/)[(_j)+(1)]/*)*/);
  1926. /*]*/
  1927. _j=(_j)+(1);
  1928. _i=(_i)-(1);
  1929. }
  1930. }
  1931. /*FI]*/
  1932. }
  1933.  
  1934.  
  1935. T0* r87feature_name(T87* C,T0* a1){
  1936. T0* R=NULL;
  1937. T2 _i=0;
  1938. /*[IF*/
  1939. if((X50to_key((C)->_first/*0*/))==((void*)(a1))){
  1940. R=(C)->_first/*0*/;
  1941. }
  1942.  else if(((C)->_remainder/*4*/)==((void*)(NULL))){
  1943. }
  1944. else{
  1945. _i=((T88*)((C)->_remainder/*4*/))->_upper/*8*/;
  1946. while (!(((_i)<(0))||((a1)==((void*)(X50to_key(/*(IRF4.6item*/(((T88*)((C)->_remainder/*4*/))->_storage/*0*/)[_i]/*)*/)))))) {
  1947. _i=(_i)-(1);
  1948. }
  1949. /*[IF*/
  1950. if((_i)>=(0)){
  1951. R=/*(IRF4.6item*/(((T88*)((C)->_remainder/*4*/))->_storage/*0*/)[_i]/*)*/;
  1952. }
  1953. /*FI]*/
  1954. }
  1955. /*FI]*/
  1956. return R;
  1957. }
  1958.  
  1959.  
  1960. T0* r87root_procedure_name(T87* C,T0* a1){
  1961. T0* R=NULL;
  1962. T0* _fn=NULL;
  1963. T2 _i=0;
  1964. _i=r87count(C);
  1965. while (!(((_i)==(0))||((R)!=((void*)(NULL))))) {
  1966. _fn=r87item(C,_i);
  1967. /*[IF*/
  1968. if(r7is_equal((T7*)(X50to_string(_fn)),a1)){
  1969. R=_fn;
  1970. if(NULL!=(R))switch(((T0*)R)->id) {
  1971. case 151: 
  1972. break;
  1973. default:
  1974. R=NULL;
  1975. };}
  1976. /*FI]*/
  1977. _i=(_i)-(1);
  1978. }
  1979. return R;
  1980. }
  1981.  
  1982.